Methods and apparatus for mixed page imposition

ABSTRACT

Methods and apparatus are provided for imposing multiple pages on a printable sheet, in which the multiple pages include pages of varying size. The printable sheet is divided into a plurality of slots, and each of the pages is assigned to a corresponding slot. User-specified settings are received for page alignment, offset and scaling for each of the slots, and the page alignment, offset and scaling of each of the pages are individually adjusted based on the user specifications.

REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.10/047,505, filed 26 Oct. 2001, now U.S. Pat. No. 7,177,045, whichclaims priority from U.S. Provisional Patent Application No. 60/283,816,filed 13 Apr. 2001.

BACKGROUND

The invention relates generally to methods and systems for printingcomputer-generated images. More particularly, the invention relates tomethods and systems for assembling and formatting documents inpreparation for printing.

In print shop environments, content from multiple sources is oftenmerged to create a new document. For example, in the production of anillustrated calendar, photographs may be scanned to produce the calendarillustrations. The scans are then interleaved with calendar pages, whichmay have been produced in a page layout program or a word processor.Generally, before the document is output to a color printer, additionallayout and job options are specified, such as single-side vs. duplexprinting, resolution, color profile and print profile. In particular,page imposition, in which selected individual pages are imposed on asingle sheet, is an extremely useful layout option. The individual pagesare arranged on the sheet to yield a proper page sequence in thefinished document. Page imposition greatly facilitates post-printingprocesses such as collating, cutting, and binding, so that a printeddocument with the pages in the correct order results.

Various methods and systems for page imposition are known. For example,Stone et al. U.S. Pat. No. 5,768,488 describes a page placement processthat enables user-defined placement of pages in an N-up environment.Holt U.S. Pat. No. 5,495,561 describes an object-oriented printinginterface having a page imposition feature. Benson U.S. Pat. No.6,046,818 describes a method for imposing and rendering a plurality ofnon-overlapping pages to be printed on a single sheet. Any of theseexamples would be well suited for producing a document such as thecalendar described above, in which all of the pages to be imposed are ofthe same size and page orientation. However, all suffer the commonlimitation of being unable to impose pages of varying sizes and pageorientations.

Thus, there remains a need in the art for a process for imposing pagesof varying sizes and orientations. It would be a significant advance toimplement such a process as a server-based software application in anetwork environment, enabling the user to perform the various steps ofthe imposition process in any software application, from any workstationon the network, and to output the finished print job to any print deviceon the network. It also would be desirable to furnish other advancedlayout features, such as negative gutter size, customizable trim andfold marks, and specification of binding options.

SUMMARY

In recognition of such need, there is herein described methods andapparatus for formatting printable information in which data objects,generally images or pages from digital documents, are selected andordered to create a new digital document comprising a number ofprintable pages. The printable pages may be of uniform dimension andpage orientation, or they may vary in one or both of dimension and pageorientation. Prior to printing, groups of printable pages are imposed onprintable sheets in a manner such that the sequence of the printed pagesmatches the page sequence of the created digital document afterpost-printing processing steps such as folding, cutting, collating andbinding.

One embodiment of the invention provides a method of imposing printablepages, the pages varying in one or both of dimension and orientation, onprintable sheets, by means of a graphical user interface, in which athumbnail image of a printable sheet is divided into separate slots. Aprintable page is placed into each slot by placing a thumbnail image ofthe printable page into the slot. Alignment, offset and scaling settingscan be applied to individual slots, groups of slots or every slot on asheet. Thereafter, a variety of other layout and job options are setprior to printing the document.

The invented methods and apparatus may be implemented as a server-basedsoftware application in a distributed printing environment. Furthermore,the invention also may be embodied as a computer program product forperforming methods in accordance with this invention.

BRIEF DESCRIPTION OF THE DRAWINGS

Features of the present invention can be more clearly understood fromthe following detailed description considered in conjunction with thefollowing drawings, in which the same reference numerals denote the sameelements throughout, and in which:

FIG. 1 shows a block diagram of a system for formatting printableinformation according to the invention;

FIG. 2 shows a graphical user interface (GUI) of a page impositionapplication in preview mode according to the invention;

FIG. 3 shows the GUI of FIG. 2 in layout mode according to theinvention;

FIG. 4 shows a page mode selector from the GUI of FIG. 2 according tothe invention;

FIG. 5 shows a “Layout” pull down menu from the GUI of FIG. 2 accordingto the invention;

FIG. 6 shows a list box for defining printer's marks from the pulldownmenu of FIG. 5 according to the invention;

FIG. 7 shows a view of a “Scale” pulldown menu in Fixed page mode fromthe GUI of FIG. 1 according to the invention;

FIG. 8 shows a view of a “Scale” pulldown menu in Mixed page mode fromthe GUI of FIG. 2 according to the invention;

FIG. 9 shows a “Finishing” menu from the GUI of FIG. 2 according to theinvention;

FIG. 10 provides a diagram of a technique for gang printing according tothe invention;

FIG. 11 shows a drop down menu for managing sheets from the GUI of FIG.2 according to the invention;

FIGS. 12-19 are screen shots showing an example of a brochure having aspread according to the invention; and

FIG. 20 shows the placement of pages within slots according to theinvention.

DETAILED DESCRIPTION

This invention provides a network-based system and method for formattingprintable information. A particular embodiment of the invention providesa method of imposing groups of printable pages on printable sheets priorto output of a print job to a printing device. Page imposition is atechnique for ordering the pages that make up a document on sheets insuch manner as to facilitate organizing the pages of the final printeddocument into the correct page sequence using post-printing processingtechniques such as folding, cutting, collating and binding.

FIG. 1 shows a network-based system for formatting printableinformation. The system includes a server 91, any number of workstations92 connected to the server, and one or more output devices 93, alsoconnected to the server. At workstation 92, users create a variety ofdata objects, which are subsequently selected and organized into avariety of digital documents. These data objects, typically pagescreated with word-processing or page layout programs, or images createdwith graphics programs, may exist in a large number of formats.Furthermore, they may be stored locally on workstation 92 or they may bestored on server 91. For purposes of organizing into digital documents,however, the data objects are converted to a common file format andstored on server 91, as a library of data objects 94. The common fileformat is a page description language. An exemplary embodiment of theinvention uses portable document format (“PDF”), originally developed byAdobe Systems, Inc. of San Jose Calif. Alternatively, other pagedescription languages may be used, such as PostScript, also developed byAdobe Systems, Inc. or PCL, developed by Hewlett-Packard Co. of PaloAlto Calif.

To select from the library of objects, thumbnail images of the objects,also stored on server 91, are displayed on workstation 92, and the userinteracts with the thumbnail images, using a pointing device such as amouse to select and arrange the desired objects. A page impositionapplication 95, resident on server 91, and accessed by the user by meansof a GUI 10 residing on workstation 92, allows the user to perform pageimposition and other layout and pre-print processing techniques on theprint job before it is finally sent to the output device 93. In anexemplary embodiment, output device 93 may be either a color printer ora color copier programmed to function as a printer. However, outputdevice 93 may, in fact, be any device having a print engine. Inprofessional printing environments, high performance output devices mayautomatically perform post-printing techniques such as folding, cutting,collation and binding under the control of software programs residing onthe server. Although the system has been described as including oneserver 91, the system may actually include more than one server, witheach server performing a dedicated function. For example, the objectlibrary may be archived on a file server, and the software applicationmay reside on an application server.

Referring now to FIG. 2, shown is an exemplary GUI 10 in preview mode,resident on workstation 92, by which the user gains access to theimposition application 95. The user makes use of the application'svarious functionalities by activating the corresponding elements of theinterface. In preview mode, a typical windowed workspace displaysthumbnail images of the pages 12 of a print job on one or more printablesheets 11. Thus, the source file for a job may be modified bymanipulating the page images in either preview mode, as shown in FIG. 2,or layout mode, as shown in FIG. 3. The pages 12 appear on the sheet 11as a printer's spread, in the order in which they are to be printed asan imposed print job. Each sheet is divided into a number of “slots,” orsections, each one intended to receive a page. The printable pages mayinclude one or both of document pages and images. The various impositionattributes may be specified manually by interacting with the variousinterface elements and controls described below, or automaticallythrough the application of a template. Templates are selected from apulldown menu of templates 19. The user may specify a particular set ofimposition attributes and then save the attribute set to a customtemplate for application to multiple print jobs, or the user may selectfrom a number of built-in templates provided by the invention.

Page Modes

Advantageously, the invention is able to impose pages of varying sizeand shape in addition to conventional page imposition, in which pages offixed size and orientation are imposed. Accordingly, a page modeselector 13 is provided for selecting either of:

-   -   Fixed page mode, for uniform pages; and    -   Mixed page mode, for pages that vary in dimension and/or        orientation.

The “mixed page mode,” apart from handling documents with pages ofdifferent dimensions, also enables a user to separately alter variousimposition attributes for each page in the document. This facilitatesthe creation of many useful impositions. A duplexed brochure having aspread as described below is one such example. Many of these impositionscan be stored as templates to be applied to different documents later.The construction of such impositions is not possible under therestriction that all the pages be of the same size.

FIG. 2 shows Fixed page mode selected and FIG. 3 shows Mixed page modeselected. As explained below, each mode offers a distinct array ofuser-settable imposition attributes, although there is considerableoverlap between attribute arrays for the two page modes. FIG. 4 providesa detailed view of the various settings available in the page modeselector. As indicated at 13 a, fixed page mode is the default mode fora job containing pages of fixed size and orientation. Reference numeral13 b denotes mixed page mode. It will be appreciated that, for a fixedpage job, the user is allowed to switch between modes. As shown at 13 b,for a mixed page job, only the mixed page mode is available. In thiscase, the selector for fixed page mode is grayed-out.

View Modes

View mode selector buttons 14 allow the user to switch between previewand layout modes. Preview mode approximates the appearance of the finalprinted output very closely, imposing thumbnail images of the pages onthe sheet. Layout mode, shown in FIG. 3, displays numbered, genericpages 12 that allow the user to determine location of source documentpages in the imposed job.

Imposition Settings

Imposition settings apply to the job currently displayed in the mainwindow. Because the imposition settings usually affect the job's printedlayout, they are saved with the job and used whenever the job is opened.Changes to imposition settings are applied to the job in real time, butare not saved permanently until the job is saved. The various impositionattributes are organized according to category, the categories being:

-   -   Sheet, which allows specification of paper characteristics on        which the job is to be printed;    -   Layout, which specifies number, ordering and rotation of pages        on a sheet;    -   Scale to enlarge or shrink pages by specified amounts, and to        specify positioning within a slot; and    -   Finishing, for specifying binding and gang printing settings.

Access to the attribute settings is gained through a series of pulldownmenus 15, 16, 17 and 18, one menu provided for each category ofattributes.

Table 1, below, provides a listing of the various imposition attributes,organized by category, along with an indication of which page mode theattribute is associated with, and usage constraints. TABLE 1 FEATURESFIXED PAGE MODE MIXED PAGE MODE Sheet Size Yes Yes Creep Adjustment YesYes Orientation Yes Yes Duplex Yes Yes Layout Row/Columns Yes YesPrinter's Marks Yes Yes Printer's Marks Yes Yes customizable Pull in topage edge No Yes Bleeds Yes No Bleeds Definable Yes No Scaling Apply toNot editable Editable All slots on Current Slot surface Row on allsurfaces Column on all surfaces All slots on all surfaces Scale ModeEditable Editable Scale to fit Scale to fit Custom Custom Fit width Fitheight Scale Factor/ Disabled when under: Disabled when under: FinishScale to fit mode Scale to fit Height Enabled when: Fit width and WidthCustom mode Fit height Enabled when under: Custom Alignment/ DisabledDisabled when under: Offsets Scale to fit Enabled when under: Custom Fitwidth Fit height Finishing Binding Yes Yes Gang Up Yes Yes Drop Menu Addsheets Yes Yes Duplicate Sheet Yes Yes Delete Sheet(s) Yes Yes Edit PageYes Yes Preview Mode Negative Yes Yes Gutter Size Page Rotation 180 Deg90 Deg increment increment

Each attribute will be discussed in greater detail below.

In FIG. 2, the “Sheet” menu 15 is shown pulled down to reveal a lowerlevel of menus for the various “Sheet” attributes:

-   -   Size (20);    -   Sheet (21);    -   Orientation (22); and    -   Duplex (23).

Because “Sheet” settings affect virtually every other aspect of theimposition process, it is preferable that they should be specifiedimmediately upon opening a job in the main window. “Size” allowsspecification of sheet size. A number of built-in sheet sizes areprovided, or the user can specify a custom sheet size. “Creepadjustment” provides either “plain” or “thick” settings, or the user canspecify a thickness value from 0-2″ (or the equivalent in another unitof measurement). “Orientation” allows the user to rotate the sheet,either 90° or 180°. Setting “Duplex” to “on” specifies double-sidedprinting, setting it to “off” specifies single-sided printing.

FIG. 5 shows the “Layout” menu 16 pulled down to reveal the variousfeatures available. “Rows” and “Columns” allow the number of rows andcolumns 31 in a sheet layout to be specified, each to a maximum of fiveper sheet. As illustrated, the settings specify a sheet with four pagesimposed, two rows by two columns. Buttons for defining printer's marks32 and bleeds 33 are provided. As indicated in Table 1, the “Bleeds”feature is available only in Fixed page mode. By selecting the printer'smarks button 32, the user is granted access to screen #2 (36) throughwhich the user is able to set properties for trim marks and fold marks.A text box 35 allows values to be entered specifying horizontal andvertical offsets, thus altering the default placement of the trim andfold marks. Buttons 34 grant access to screen #3 (40) and screen #4 (41)(See FIG. 6) for setting trim and fold mark properties, respectively.Referring to screen #3, the user specifies trim marks properties asfollows

-   -   Horizontal length (42);    -   Vertical length (43);    -   Line type (44);    -   Line width (45); and    -   Line color (46).

The controls in Screen #4, for fold marks operate in the same manner. Ineither screen #3 or #4, the user may select line color from a chart ofselections 47, or a “Other” button 48 grants access to a further screen(not shown) having a color matrix for specifying a custom color.

FIG. 7 shows the “Scale” menu 17 pulled down in Fixed page mode. Aspreviously described, the page mode is selected by means of the pagemode selector 13. In Fixed page mode, the “Apply to” field 51 isdisabled; scaling settings are automatically applied to all pages on allsurfaces in Fixed page mode. As Table 1 shows, in Fixed page mode, twoscale modes 52 are available: “Scale to fit” and “Custom.” Here, “Scaleto fit” is selected. When the custom scale mode is selected, ScaleFactor 55, Original/Finished Height and Width 56, 57, disabled under“Scale to fit” mode are enabled. However, the values for Scale Factor,Original/Finished Height and Width are proportionally constrained. Thus,when the user enters data in one field, values for the other two fieldsare automatically calculated, based on the entered value. Although it ispossible to supply values that would cause the page image to extendbeyond the slot, the image would be clipped, specified by a clippingicon (not shown). In Fixed page mode, alignment 54 and offset 53 aredisabled. Default values are automatically applied.

FIG. 8 shows the “Scale” menu 17 as it appears in Mixed page mode.Unlike Fixed page mode, scaling parameters can be applied to individualslots or groups of slots. The options available from the menu in the“Apply to” field 51 include:

-   -   Current slot;    -   Row on all surfaces;    -   Column on all surface; and    -   All slots on all surfaces.

All four options are available at any time, regardless of scale modeselected.

Scale modes 52 available include:

-   -   Scale to fit;    -   Custom;    -   Fit width; and    -   Fit height.

“Scale to fit” is the default mode, wherein all pages are scaled tobest-fit within the slots. Because the job may contain pages of varyingsize, the scale factor 55 may vary, although it cannot be edited. Toview the scale factor for a particular page, the user can specify thepage by selecting the corresponding slot in either layout or previewmode. The user may switch between scale modes at any time. However, whenswitching to “Scale to fit,” any previous scale mode settings arediscarded. Alignment 54 and Offsets 53 are not editable under “scale tofit.”

In Mixed page mode, with the “Custom” scale mode 52 selected, the useris free to enter Scale Factor 55, and Original/Finished Height and Width56, 57. As in Fixed page mode, these settings are proportionallyconstrained, so that when a user enters data in one field, the otherfields are automatically adjusted. Alignment 54 and Offset 53 areenabled. Using Alignment 54 the user can align a page within a slot withthe following settings:

-   -   Upper-Left    -   Upper-Center;    -   Upper-Right;    -   Center-Left;    -   Center-Center;    -   Center-Right;    -   Lower-Left;    -   Lower-Center; and    -   Lower-Right.

Using Offset 53, the page placement can be further adjusted, using thecurrent Alignment position as the starting point for the offset. IfAlignment settings change, the Offset values return to zero.

In Mixed page mode, with the “Fit Width” scale mode 52 selected, thepage width is scaled to best-fit the slot. Scale Factor, and FinishedHeight and Width are calculated based on slot width and Original Width.Alignment and Offsets are available.

In Mixed page mode, with the “Fit Height” scale mode 52 selected, thepage height is scaled to best-fit the slot. Scale Factor, and FinishedHeight and Width are calculated based on slot height and OriginalHeight. Alignment and Offsets are available.

FIG. 9 shows two separate views of the “Finishing” pulldown menu 18.Using the “Finishing” pulldown, the user specifies Binding and Gangprinting options. As shown in FIG. 9A, enabling Binding options 61disables Gang up options 63. Binding options 61 include:

-   -   Saddle;    -   Nested Saddle; and    -   Perfect.

In addition, the user specifies a binding edge 62. “Left” is selectedfor a document that reads from left to right. “Right” is selected for adocument that reads from right to left, for example those written inAsian or middle-Eastern languages.

As shown in FIG. 9B, enabling Gang Up options 63, disables Bindingoptions. In Gang printing, multiple pages are placed on a sheet for“collate and cut” finishing rather than imposing them in an orderrequired for a particular binding method. The following Gang up methodsare available:

-   -   Repeat—places multiple copies of a page on a sheet until the        sheet is filled. For example, the front side of sheet one is        filled with images of page 1, the rear side is filled with        images of page two, the front side of sheet two is filled with        images of page 3, and the rear side with images of page four,        etc.    -   Unique—places the pages in an appropriate order for printing a        single copy of a job. This option does not fully collate itself,        thus requiring hand collation, but it optimizes sheet size while        limiting the run to a single copy.    -   Unique-Collate Cut—(Shown in FIG. 10) places pages in        arrangement that allows the page to fall into the correct order        when the sheets are folded, stacked and cut. This option        minimizes the necessity of collating by hand and is most        appropriate for printing single copies of a document.        Templates

As mentioned earlier, the user may specify imposition settings for a jobby applying a predefined template. Settings that can be saved to atemplate include but are not limited to:

-   -   Page orientation;    -   Single-sided or double-sided printing;    -   Rows and columns    -   Printer's marks “on” and “off;”    -   Job label;    -   Bleeds “on” and “off,”    -   Bleed definition;    -   Scale mode—“Scale to fit;”    -   Scale mode—“Fit width;”    -   Scale mode—“Fit height;”    -   Alignment;    -   Binding method;    -   Binding edge;    -   Group of;    -   Gang up method;    -   Gutter size;    -   Page rotation; and    -   Page numbering.

In addition to user-specified custom templates, the invention provides anumber of built-in templates, including but not limited to:

-   -   1-up full bleed;    -   2-up perfect;    -   2-up saddle;    -   3-up trifold brochure;    -   4-up gate fold;    -   4-up head to head; and    -   4-up z-fold.        Adding, Duplicating and Deleting Sheets

A drop down menu 24 is accessed by clicking the right mouse button inany layout or preview area. FIG. 11 shows detailed views of the dropdownmenu 24. The dropdown provides the following options:

-   -   Zoom in;    -   Zoom out;    -   Add sheets;    -   Duplicate sheet; and    -   Edit page.

“Zoom in” and “Zoom out” are conventional magnification featurescommonly provided in desktop applications. “Add sheets” allows the userto add one or more new sheets to the print job as shown in the dialogbox 81. The sheet or sheets may be added at the beginning, the end or atanother user-selected point in the sheet sequence. “Duplicate sheet,” asshown in the dialog box 82, allows the user to duplicate an existingsheet and add it to the print job at the beginning, the end or atanother user-selected point in the sheet sequence. “Delete sheet,” asshown in the dialog box 83, allows the user to select one or more sheetsand delete them from the job. “Edit page” allows the user to apply lateedits to individual pages prior to printing.

Gutter Size

Methods and apparatus in accordance with this invention automaticallygovern the locations of gutters according to the layout and sheet sizegoverning imposition for the job. The user can also specify gutter sizeby entering a value in its vertical gutter size field 26 or itshorizontal gutter size field 27. It is also possible to specify anegative gutter value, for example, to join together two pages locatedin adjacent slots, or to offset the effect of an excess bleed value.

Imposition settings and any other job modifications are saved byactivating the “Close” button 24 on the window.

Methods and apparatus in accordance with this invention may beimplemented using conventional programming techniques known to thoseskilled in the art of computer programming.

EXAMPLE: A Brochure Having a Spread

The steps outlined below create a four page, duplexed brochurecontaining two inner pages and a cover consisting of a single continuousimage spread across two pages.

Required Document: A PDF document having three pages; where the thirdpage (cover page) is twice the size of the first two pages, (innerpages) e.g., a file with two letter size pages and one 11×17 cover page.

Steps:

-   -   a. Impose the document, the mode is automatically switched to        “Mixed page mode,” as the document contains pages of different        sizes.    -   b. Click on the “Finish Tab” to make sure that the setting is        set to “Gang-up-unique.”    -   c. From the “Sheets” settings choose the following (FIG. 12)        -   Sheet: Letter        -   Orientation: Landscape        -   Duplex: On    -   d. From the “Layout” tab choose (FIG. 13)        -   Row: 1        -   Column 2        -   Do not choose Printer's Marks and bleed settings.    -   e. Click on the preview mode and go to the sheet containing the        Cover page. Notice that the cover page is on the left slot of        the sheet with the other slot being empty. Now switch to the        “Layout mode” by clicking on the “Preview/layout” button.    -   f. In the “Layout mode”, select the slot containing empty page        (slot with “0”). Change the page number to be 3, which is the        page number of the Cover Page. (FIG. 14)    -   g. Go Back to the “Preview mode”. Now the sheet shall contain        two copies of the cover page in both slots. (FIG. 15)    -   h. Click on the “Scale tab”. Select the slot containing the        inner page and note the scale factor. (FIG. 16)    -   i. Select the left slot of the sheet containing the cover page        on both the slots. Change the scale mode to custom. Enter the        previously noted scale factor. Use the “Alignment matrix button”        to set alignment to “Left-Center”. (FIG. 17)    -   j. Repeat the step above on the right slot with the alignment        set to “Right-Center”. (FIG. 18)        The final imposition is shown in FIG. 19.

An Algorithm for Placing Pages with Different Dimensions on a SheetAccording to a Layout

As previously described, “Mixed Page Mode” provides for imposingdocuments with different page sizes on a Sheet according to a specifiedlayout, i.e., number of “rows” and “columns.” The idea behind thetechnique is to divide the sheet into “slots” and then place a page ineach of the slot. The following discussion describes the generalalgorithm used for this purpose.

The inputs for this algorithm are the size of the sheet, the page sizesof the document to be imposed (which may be different for each page) andthe number of rows and columns in which to place the pages, along withother parameters such as the gaps, mark lengths, and binding.

The algorithm can be better understood with the help of the followingconcepts:

-   -   ImageAble Sheet: This is the actual area of the sheet where the        pages are placed.    -   Slots: These are the sections in which the sheet is divided        into; the pages of the document are placed into these slots. The        number of such slots would be the product of the number of rows        and the number of columns and each slot of the sheet shall be of        the same size.    -   SlotScaleX: This is the ratio between the width of the slot and        the width of the sheet, i.e., slotWidth/sheetWidth.    -   SlotScaleY: This is the ratio between the height of the slot and        the height of the sheet, i.e., slotHeight/sheetHeight.    -   PageScale: This is the reduction applied to the original page in        the document before placing it on the sheet; the final size of        the placed page is the original page size times the PageScale        (Because the ratio between the width and the height of the page        can't be changed, we need only one scale).

The actual algorithm consists of the following four steps:

-   -   The calculation of the SlotScales.    -   The calculation of the PageScales for each page.    -   The determination of where the slots are on the sheet    -   The placement of pages within the slots.        The Calculation of the SlotScales

To do this, first the “ImageAble Sheet” is calculated by decreasing fromthe sheet size the dimensions of the printer marks as required and thegaps specified by the imposition parameters. The width of the slot isthen calculated by dividing the width of the “ImageAble Sheet” by thenumber of columns and the length of the slot by dividing the length ofthe “ImageAble Sheet” by the number of rows; the ratios follownaturally.

Pseudo code (implementation details omitted):

Input: W the width of the sheet H the height of the sheet M_(l) themargins on the left (this includes the mark dimensions) M_(r) themargins on the right (including the mark dimensions) M_(t) the marginson the top(including the mark dimensions) M_(b) the margins on thebottom(including the mark dimensions) r number of rows c number ofcolumns G_(v) array 1 . . . c − 1 of Vertical Gaps (Gaps betweencolumns) G_(h) array 1 . . . r − 1 of Horizontal Gaps (Gaps betweenrows)

Output: S_(x) SlotScaleX S_(y) SlotScaleYAlgorithm: $\begin{matrix}{{S_{y} = {\left( {\left( {H - M_{t} - M_{b} - {\sum\limits_{i = 1}^{i = {r - 1}}{G_{h}\lbrack i\rbrack}}} \right)/r} \right)/H}};} \\{{S_{y} = {\left( {\left( {H - M_{t} - M_{b} - {\sum\limits_{i = 1}^{i = {r - 1}}{G_{h}\lbrack i\rbrack}}} \right)/r} \right)/H}};}\end{matrix}$ return  {S_(x), S_(y)}The Calculation of the PageScales for Each Page

The calculation has to be done per page as each page can have differentsize and therefore a different scale; remember that the slots in whichthe pages are placed are of the same size for each page. To do this,first the width of the slot is divided by the width of the page, thenthe height of the slot is divided by the height of the page and theminimum of the two ratios is considered as the page scale; the slotwidth and slot height are easily obtained after the first step.

Pseudo code (implementation details omitted):

Input: W width of the sheet H height of the sheet S_(x) SlotScaleXcalculated and defined above S_(y) SlotScaleY calculated and definedabove n number of pages in the document P_(heights) array 1 . . . n ofpage Heights P_(widths) array 1 . . . n of page Widths

Output: P_(scale) array 1 . . . n of pageScalesAlgorithm: ∀i, i ∈ {1, …  , n} $\begin{matrix}{{P_{scale}\lbrack i\rbrack} = {f_{\min}\left( {\left( {\left( {W \times S_{x}} \right)/{P_{widths}\lbrack i\rbrack}} \right),\left( {\left( {H \times S_{y}} \right)/{P_{heights}\lbrack i\rbrack}} \right)} \right)}} \\{{{{where}\quad{f_{\min}\left( {a,b} \right)}} = a},{{a \leq b};}} \\{{= b},{{b > a};}} \\{{{return}\quad\left\{ P_{scale} \right\}};}\end{matrix}$The Determination of where the Slots are on the Sheet

To do this, first the left and then the top edge of the left top slot iscalculated; the algorithm for both the edges follow the same pattern. Atfirst, the position of either the middle slot or the middle gap iscalculated depending on whether the number of columns (or rows for topedge) is odd or even (of course, the margins for the printer marks arededucted first from the sheet size). Then, the left (or top) edge iseasily calculated by shifting that position by the required number ofslot widths (or heights) and gaps to the left (or top). After thetop-left position is calculated, calculation of all other positions isonly a matter of shifting the position by correct number of slot sizesand gaps.

Pseudo code (implementation details omitted):

Input: W width of the sheet H height of the sheet M_(l) the margins onthe left (this includes the mark dimensions) M_(r) the margins on theright (including the mark dimensions) M_(t) the margins on thetop(including the mark dimensions) M_(b) the margins on thebottom(including the mark dimensions) n_(r) number of rows n_(c) numberof columns G_(v) array 1 . . . n_(c) − 1 of Vertical Gaps(Gaps betweencolumns) G_(h) array 1 . . . n_(r) − 1 of Horizontal Gaps(Gaps betweenrows) S_(x) SlotScaleX calculated and defined above S_(y) SlotScaleYcalculated and defined above r the row Number of the Slot c the columnNumber of the slot

Output: p_(l) left position of the slot p_(t) top position of the slotp_(r) right position of the slot p_(b) Bottom position of the slotAlgorithm: $\begin{matrix}{I = {{set}\quad{of}\quad{{Integers}.}}} \\{p_{l} = \begin{matrix}{{M_{l} + {f_{leftOdd}\left( {{W - M_{l} - M_{r}},{W \times S_{x}},c,n_{c},G_{v}} \right)}};} \\{\frac{n_{c}}{2}\quad{I\left( {n_{c}\quad{is}\quad{odd}} \right)}}\end{matrix}} \\{= \begin{matrix}{{M_{l} + {f_{leftEven}\left( {{W - M_{l} - M_{r}},{W \times S_{x}},c,n_{c},G_{v}} \right)}};} \\{\frac{n_{c}}{2}{I\left( {n_{c}\quad{is}\quad{even}} \right)}}\end{matrix}} \\{\begin{matrix}f_{leftOdd} \\\left( {W_{sheet},W_{slot},c,n_{c},G_{v}} \right)\end{matrix} = \begin{matrix}{\left( {\frac{W_{sheet}}{2} - \frac{W_{slot}}{2}} \right) + {\left( {c - \left\lceil \frac{n_{c}}{2} \right\rceil} \right) \times W_{slot}} +} \\{{f_{oddSumGaps}\left( {c,n_{c},G_{v}} \right)};}\end{matrix}} \\{{{f_{oddSumGaps}\left( {c,n_{c},G_{v}} \right)} = {- {\sum\limits_{i = {\lceil\frac{n_{c}}{2}\rceil}}^{i = {c - 1}}{G_{v}\lbrack i\rbrack}}}};\quad{c > \left\lceil \frac{n_{c}}{2} \right\rceil}} \\{{= 0};\quad{c = \left\lceil \frac{n_{c}}{2} \right\rceil}} \\{{= {- {\sum\limits_{i = \sum\limits_{c}}^{i = {{\frac{n_{c}}{2}} - 1}}{G_{v}\lbrack i\rbrack}}}};\quad{c < \left\lceil \frac{n_{c}}{2} \right\rceil}} \\{\begin{matrix}f_{leftEven} \\\left( {W_{sheet},W_{slot},c,n_{c},G_{v}} \right)\end{matrix} = \begin{matrix}{\left( {\frac{W_{sheet}}{2} - \frac{G_{v}\left\lbrack \frac{n_{c}}{2} \right\rbrack}{2}} \right) - W_{slot} + {\left( {c - \frac{n_{c}}{2}} \right) \times}} \\{{W_{slot} + {f_{evenSumGaps}\left( {c,n_{c},G_{v}} \right)}};}\end{matrix}} \\{{{f_{evenSumGaps}\left( {c,n_{c},G_{v}} \right)} = {\sum\limits_{i = \frac{n_{c}}{2}}^{i = {c - 1}}{G_{v}\lbrack i\rbrack}}};\quad{c > \frac{n_{c}}{2}}} \\{{= 0};\quad{c = \frac{n_{c}}{2}}} \\{{= {- {\sum\limits_{i = c}^{i = {\frac{n_{c}}{2} - 1}}{G_{v}\lbrack i\rbrack}}}};\quad{c < \frac{n_{c}}{2}}} \\{{p_{r} = {p_{l} + {W \times S_{x}}}};} \\{p_{t} = \begin{matrix}{{M_{t} + {f_{topOdd}\left( {{H - M_{t} - M_{b}},{H \times S_{y}},r,n_{r},G_{h}} \right)}};} \\{\frac{n_{r}}{2} \notin {I\left( {n_{r}{\quad\quad}{is}\quad{odd}} \right)}}\end{matrix}} \\{= \begin{matrix}{{M_{t} + {f_{topEven}\left( {{H - M_{t} - M_{b}},{H \times S_{y}},r,n_{r},G_{h}} \right)}};} \\{\frac{n_{r}}{2} \in {I\left( {n_{r}\quad{is}\quad{even}} \right)}}\end{matrix}} \\{\begin{matrix}f_{topOdd} \\\left( {H_{sheet},H_{slot},r,n_{r},G_{h}} \right)\end{matrix} = \begin{matrix}{\left( {\frac{H_{sheet}}{2} - \frac{H_{slot}}{2}} \right) + {\left( {r - \left\lceil \frac{n_{r}}{2} \right\rceil} \right) \times H_{slot}} +} \\{{f_{oddSumGaps}\left( {r,n_{r},G_{h}} \right)};}\end{matrix}} \\{{{f_{oddSumGaps}\left( {r,n_{r},G_{h}} \right)} = {- {\sum\limits_{i = {\lceil\frac{n_{r}}{2}\rceil}}^{i = {r - 1}}{G_{h}\lbrack i\rbrack}}}};\quad{r > \left\lceil \frac{n_{r}}{2} \right\rceil}} \\{{= 0};\quad{r = \left\lceil \frac{n_{r}}{2} \right\rceil}} \\{{= {- {\sum\limits_{i = r}^{i = {{\frac{n_{r}}{2}} - 1}}{G_{h}\lbrack i\rbrack}}}};\quad{r < \left\lceil \frac{n_{r}}{2} \right\rceil}} \\{\begin{matrix}f_{topEven} \\\left( {H_{sheet},H_{slot},r,n_{r},G_{h}} \right)\end{matrix} = \begin{matrix}{\left( {\frac{H_{sheet}}{2} - \frac{G_{h}\left\lbrack \frac{n_{r}}{2} \right\rbrack}{2}} \right) - H_{slot} + {\left( {r - \frac{n_{r}}{2}} \right) \times}} \\{{H_{slot} + {f_{evenSumGaps}\left( {r,n_{r},G_{h}} \right)}};}\end{matrix}} \\{{{f_{evenSumGaps}\left( {r,n_{r},G_{h}} \right)} = {\sum\limits_{i = \frac{n_{r}}{2}}^{i = {r - 1}}{G_{h}\lbrack i\rbrack}}};\quad{r > \frac{n_{r}}{2}}} \\{{= 0};\quad{r = \frac{n_{r}}{2}}} \\{{= {- {\sum{\sum\limits_{i = r}^{i = {\frac{n_{r}}{2} - 1}}{G_{h}\lbrack i\rbrack}}}}};\quad{r < \frac{n_{r}}{2}}} \\{{p_{b} = {p_{t} + {H \times S_{y}}}};\quad{{return}\quad\left\{ {p_{l},p_{t},p_{r},p_{b}} \right\}}}\end{matrix}$The Placement of Pages Within the Slots.

Once the rectangles for the slots are calculated, one can easily placethe pages inside those rectangles with appropriate pagescales. Thisscale is alterable by the user and hence the page can be clipped at slotedges. There is a freedom of movement of the pages within a slot and thecorrect position is determined by the imposition parameters likealignment (left, right, center) and offsets.

FIG. 20 shows how this is done. The page is placed within the slot andthen moved left, right, top or bottom according to the alignment. FIG.20 shows a randomly aligned page in a slot. It describes all thedifferent possible movements of the page within the slot.

Although the invention is described herein with reference to a varietyof preferred embodiments, one skilled in the art will readily appreciatethat other applications may be substituted for those set forth hereinwithout departing from the spirit and scope of the present invention.Accordingly, the invention should only be limited by the Claims includedbelow.

1. A method for imposing a plurality of pages on a printable sheet, theplurality of pages including pages of varying size, the methodcomprising: dividing a printable sheet into a plurality of slots;assigning each of the pages to a corresponding slot; receivinguser-specified settings for page alignment, offset and scaling for eachof the slots; and individually adjusting the page alignment, offset andscaling of each of the pages based on the user specifications.
 2. Themethod of claim 1, wherein the scaling settings include any of: a “scaleto fit” mode; a “custom” mode; a “fit width mode;” and a “fit height”mode.
 3. The method of claim 1, wherein receiving further comprisesreceiving page rotation settings on the printable sheet in ninety degreeincrements.
 4. The method of claim 1, wherein receiving furthercomprises receiving any of: sheet size; creep adjustment; sheetorientation; at least one of rows and columns; printer's marks; andfinishing options.
 5. The method of claim 4, wherein receiving furthercomprises receiving: trim marks; and fold marks.
 6. The method of claim5, wherein the received trim marks specifications comprise: horizontaland vertical length; line type; line width; and line color.
 7. Themethod of claim 5, wherein the received fold marks specificationscomprise: horizontal and vertical length; line type; line width; andline color.
 8. The method of claim 4, wherein the received finishingoptions specifications comprise: binding options; and options for gangedprint jobs.
 9. The method of claim 1, further comprising savingimposition attributes to a template.
 10. The method of claim 1, furthercomprising specifying imposition attributes by applying a template. 11.The method of claim 1, further comprising previewing the printablesheet.
 12. The method of claim 1, further comprising: editing any of thepages; and setting gutter size.
 13. A system for imposing a plurality ofpages on a printable sheet, the plurality of pages including pages ofvarying size, the system comprising: means for dividing a printablesheet into a plurality of slots; means for assigning each of the pagesto a corresponding slot; means for receiving user-specified settings forpage alignment, offset and scaling for each of the slots; and means forindividually adjusting the page alignment, offset and scaling of each ofthe pages based on the user specifications.
 14. The system of claim 13,wherein the scaling settings include any of: a “scale to fit” mode; a“custom” mode; a “fit width mode;” and a “fit height” mode.
 15. Thesystem of claim 13, wherein the means for receiving further comprisesmeans for receiving page rotation settings on the printable sheet inninety degree increments.
 16. The system of claim 13, wherein the meansfor receiving further comprises means for receiving any of: sheet size;creep adjustment; sheet orientation; at least one of rows and columns;printer's marks; and finishing options.
 17. The system of claim 16,wherein the means for receiving further comprises means for receiving:trim marks; and fold marks.
 18. The system of claim 17, wherein thereceived trim marks specifications comprise: horizontal and verticallength; line type; line width; and line color.
 19. The system of claim17, wherein the received fold marks specifications comprise: horizontaland vertical length; line type; line width; and line color.
 20. Thesystem of claim 16, wherein the received finishing optionsspecifications comprise: binding options; and options for ganged printjobs.
 21. The system of claim 13, further comprising means for savingimposition attributes to a template.
 22. The system of claim 13, furthercomprising means for specifying imposition attributes by applying atemplate.
 23. The system of claim 13, further comprising means forpreviewing the printable sheet.
 24. The system of claim 13, furthercomprising: means for editing any of the pages; and means for settinggutter size.
 25. A computer program product for imposing a plurality ofpages on a printable sheet, the plurality of pages including pages ofvarying size, the computer program product embodied on acomputer-readable medium comprising computer readable code adapted tocause a computer to: divide a printable sheet into a plurality of slots;assign each of the pages to a corresponding slot; receive user-specifiedsettings for page alignment, offset and scaling for each of the slots;and individually adjust the page alignment, offset and scaling of eachof the pages based on the user specifications.
 26. The computer programproduct of claim 25, wherein the scaling settings include any of: a“scale to fit” mode; a “custom” mode; a “fit width mode;” and a “fitheight” mode.
 27. The computer program product of claim 25, wherein thecomputer readable code is further adapted to cause a computer to receivepage rotation settings on the printable sheet in ninety degreeincrements.
 28. The computer program product of claim 25, wherein thecomputer readable code is further adapted to cause a computer to receiveany of: sheet size; creep adjustment; sheet orientation; at least one ofrows and columns; printer's marks; and finishing options.
 29. Thecomputer program product of claim 28, wherein the computer readable codeis further adapted to cause a computer to receive: trim marks; and foldmarks.
 30. The computer program product of claim 29, wherein thereceived trim marks specifications comprise: horizontal and verticallength; line type; line width; and line color.
 31. The computer programproduct of claim 29, wherein the received fold marks specificationscomprise: horizontal and vertical length; line type; line width; andline color.
 32. The computer program product of claim 28, wherein thereceived finishing options specifications comprise: binding options; andoptions for ganged print jobs.
 33. The computer program product of claim25, wherein the computer readable code is further adapted to cause acomputer to save imposition attributes to a template.
 34. The computerprogram product of claim 25, wherein the computer readable code isfurther adapted to cause a computer to specify imposition attributes byapplying a template.
 35. The computer program product of claim 25,wherein the computer readable code is further adapted to cause acomputer to preview the printable sheet.
 36. The computer programproduct of claim 25, wherein the computer readable code is furtheradapted to cause a computer to: edit any of the pages; and set guttersize.
 37. A physical computer-readable carrier comprising computerprogram instructions for imposing a plurality of pages on a printablesheet, the plurality of pages including pages of varying size, thecomputer program instructions configured to cause a computer to: dividea printable sheet into a plurality of slots; assign each of the pages toa corresponding slot; receive user-specified settings for pagealignment, offset and scaling for each of the slots; and individuallyadjust the page alignment, offset and scaling of each of the pages basedon the user specifications.
 38. The physical computer-readable carrierof claim 37, wherein the scaling settings include any of: a “scale tofit” mode; a “custom” mode; a “fit width mode;” and a “fit height” mode.39. The physical computer-readable carrier of claim 37, wherein thecomputer program instructions are further configured to cause a computerto receive page rotation settings on the printable sheet in ninetydegree increments.
 40. The physical computer-readable carrier of claim37, wherein the computer program instructions are further configured tocause a computer to receive any of: sheet size; creep adjustment; sheetorientation; at least one of rows and columns; printer's marks; andfinishing options.
 41. The physical computer-readable carrier of claim40, wherein the computer program instructions are further configured tocause a computer to receive: trim marks; and fold marks.
 42. Thephysical computer-readable carrier of claim 41, wherein the receivedtrim marks specifications comprise: horizontal and vertical length; linetype; line width; and line color.
 43. The physical computer-readablecarrier of claim 41, wherein the received fold marks specificationscomprise: horizontal and vertical length; line type; line width; andline color.
 44. The physical computer-readable carrier of claim 40,wherein the received finishing options specifications comprise: bindingoptions; and options for ganged print jobs.
 45. The physicalcomputer-readable carrier of claim 37, wherein the computer programinstructions are further configured to cause a computer to saveimposition attributes to a template.
 46. The physical computer-readablecarrier of claim 37, wherein the computer program instructions arefurther configured to cause a computer to specify imposition attributesby applying a template.
 47. The physical computer-readable carrier ofclaim 37, wherein the computer program instructions are furtherconfigured to cause a computer to cause a computer to preview theprintable sheet.
 48. The physical computer-readable carrier of claim 37,wherein the computer program instructions are further configured tocause a computer to: edit any of the pages; and set gutter size.